#ifndef PLK2GFX_H
#define PLK2GFX_H

#include "../core/AbstractObject.h"
#include "../core/ObjectFactory.h"

class PlK2Gfx : public AbstractObject
{
public:
	PlK2Gfx();

	// Return the c++ type id
	virtual int getCppTypeId();
	// Returns whether this can be cast to a given type
	virtual bool isType(int id);

	// Return the c++ type as a string 
	virtual std::string getCppTypeName();

	// returns a description of this thing
	virtual std::string getDescription();

	// create another one of these
	virtual AbstractObject* newInstance();

	// init & update
	virtual void init();
	virtual void update(double dt);

	// push its static functions into the given lua table
	virtual void pushStaticFuncs(lua_State* L);

	virtual ~PlK2Gfx();

	static int li_initGraphics(lua_State* L);
	//setAAROIRO(roid, x,y,width,height, rx1, ry1, rx2, ry2)
	static int li_setAAROIRO(lua_State* L);
private:
	bool _initted;
};

extern RegisterCppObj<PlK2Gfx> g_register_plk2gfx;


#endif